package com.insigma.business.qrcode.common.converter;

import com.insigma.business.qrcode.soldier.dto.SoldierDisabledInfoDTO;
import com.insigma.business.qrcode.soldier.dto.request.SoldierDisabledInfoInsertRequest;
import com.insigma.business.qrcode.soldier.dto.request.SoldierDisabledInfoSearchRequest;
import com.insigma.business.qrcode.soldier.dto.request.SoldierDisabledInfoUpdateRequest;
import com.insigma.business.qrcode.soldier.dto.searcher.SoldierDisabledInfoBSearcher;
import com.insigma.business.qrcode.soldier.entity.SoldierDisabledInfoDO;
import org.springframework.beans.BeanUtils;

import java.util.List;


public class SoldierDisabledInfoProviderConverter extends AbstractConverter<SoldierDisabledInfoDTO, SoldierDisabledInfoDO> {

    private final static SoldierDisabledInfoProviderConverter soldierDisabledInfoConverter = new SoldierDisabledInfoProviderConverter();

    private SoldierDisabledInfoProviderConverter(){}

    
    public static SoldierDisabledInfoBSearcher convertRequestSO2Searcher(final SoldierDisabledInfoSearchRequest request){
        final SoldierDisabledInfoBSearcher soldierDisabledInfoBSearcher = new SoldierDisabledInfoBSearcher(request.getPageNo(),
        request.getPageSize(),request.getSortKeyValueJoint());
        BeanUtils.copyProperties(request,soldierDisabledInfoBSearcher);
        return soldierDisabledInfoBSearcher;
    }

    
    public static SoldierDisabledInfoDO convertRequestUO2DO(final SoldierDisabledInfoUpdateRequest soldierDisabledInfoUpdateRequest) {
        final SoldierDisabledInfoDO soldierDisabledInfoDO = new SoldierDisabledInfoDO();
        BeanUtils.copyProperties(soldierDisabledInfoUpdateRequest,soldierDisabledInfoDO);
        
        return soldierDisabledInfoDO;
    }

    
    public static SoldierDisabledInfoDO convertRequestIO2DO(final SoldierDisabledInfoInsertRequest soldierDisabledInfoInsertRequest) {
        final SoldierDisabledInfoDO soldierDisabledInfoDO = new SoldierDisabledInfoDO();
        BeanUtils.copyProperties(soldierDisabledInfoInsertRequest,soldierDisabledInfoDO);
        return soldierDisabledInfoDO;
    }

    
    public static List<SoldierDisabledInfoDTO> convertResponseDOList2DTOList(final List<SoldierDisabledInfoDO> soldierDisabledInfoDOList){
        return soldierDisabledInfoConverter.convertGenericResponseDOList2DTOList(soldierDisabledInfoDOList);
    }

    
    public static SoldierDisabledInfoDTO convertResponseDO2DTO(final SoldierDisabledInfoDO soldierDisabledInfoDO){
        return soldierDisabledInfoConverter.convertGenericResponseDO2DTO(soldierDisabledInfoDO);
    }

    
    @Override
    protected SoldierDisabledInfoDTO doConvertResponseDO2DTO(SoldierDisabledInfoDO soldierDisabledInfoDO) {
        final SoldierDisabledInfoDTO soldierDisabledInfoDTO = new SoldierDisabledInfoDTO();
        try {
            BeanUtils.copyProperties(soldierDisabledInfoDO, soldierDisabledInfoDTO);
        }catch(RuntimeException be){
            
            return null;
        }
        return soldierDisabledInfoDTO;
    }

}
